package com.yida.file.service;

import java.io.InputStream;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.yida.system.api.domain.SysFile;

/**
 * 文件上传接口
 * 
 * @author yida
 */
public interface ISysFileService {
    /**
     * 文件上传接口
     * 
     * @param file 上传的文件
     * @return 访问地址
     * @throws Exception
     */
    public String uploadFile(MultipartFile file) throws Exception;

    /**
     * 文件下载接口
     * 
     * @param filePath 文件路径
     * @param bucket bucket（容器）
     * @param downloadName 下载文件名
     * @param response 响应体
     * @return
     * @throws Exception
     */
    public InputStream download(String filePath, String bucket, String downloadName, HttpServletResponse response) throws Exception;

    // ---------------------------新增功能区--------------------------------------
    /**
     * 文件上传接口动态地址返回
     * 
     * hmh
     * 
     * 20230608
     * 
     * @param file 上传的文件
     * @return 访问地址
     * @throws Exception
     */
    // public SysFile uploadFileDynamicLink(MultipartFile file, String bucketName, boolean dynamicLinkFlag) throws
    // Exception;

    /**
     * 文件上传接口动态地址返回
     * 
     * hmh
     * 
     * 20230612
     * 
     * @param file 上传的文件
     * @param bucketName 桶名
     * @param fileName 文件名
     * @param dynamicLinkFlag 是否动态返回
     * @return
     * @throws Exception
     */
    public SysFile uploadFileDynamicLink(MultipartFile file, String bucketName, String fileName, boolean dynamicLinkFlag) throws Exception;
}
